# -*- coding:utf-8 -*-
# 学生管理系统

# 存储信息示例
"""
student_list = [
        {"id": 1, "name": "张三", "age": 18, "sex", "男", "专业": "计算机"},
        {"id": 1, "name": "张三", "age": 18, "sex", "男", "专业": "计算机"},
        {"id": 1, "name": "张三", "age": 18, "sex", "男", "专业": "计算机"},
        {"id": 1, "name": "张三", "age": 18, "sex", "男", "专业": "计算机"}
]

"""
# 所有功能函数都是操作学员信息，所有存储所有学员信息应该是⼀个全局变量，数据类型为列表
student_list = []  # 创建一个空列表，存储学生信息


# 增加学生信息
def add_student_data():
    while True:
        # 申明全局变量
        global student_list
        # 输入学生信息
        new_id = int(input("请输入学号："))
        for data in student_list:
            if new_id == data["id"]:
                print("当前学员的id已经存在, 请重新添加")
                return add_student_data()  # 使用return,不直接调用，为了使第二次使用时， 保证第一次结束，避免代码运行时出现问题
        new_name = input("请输入姓名：")
        new_age = input("请输入年龄：")
        new_sex = input("请输入性别：")
        new_major = input("请输入专业：")
        # 创建一个空字典,把学生信息以字典形式添加进去
        dict_student_data = {}
        # 在字典中添加学生信息
        dict_student_data["id"] = new_id
        dict_student_data["name"] = new_name
        dict_student_data["age"] = new_age
        dict_student_data["sex"] = new_sex
        dict_student_data["major"] = new_major
        student_list.append(dict_student_data)  # 学生信息存入列表
        print(f"{new_name}: 添加信息成功")
        function = int(input("是否继续添加学员信息：(1 、继续添加 2、返回功能界面): "))
        if function == 2:
            print(student_list)
            break


# 删除学生信息
def del_student_data():
    while True:
        student_id = int(input("请输入需要删除学员的id: "))
        global student_list
        # 遍历学员信息表, 如果学员信息表中的id,和输入的id相等就删除这个学员，否则输出该学员不存在
        for data in student_list:
            if student_id == data["id"]:
                student_list.remove(data)
                print(f"id是{data['id']}, 姓名是{data['name']}的学员  ---删除成功")
                break
        else:
            print("这个学员的id不存在")
        func1 = int(input("是否继续删除学员信息：(1 、继续删除 2、返回功能界面): "))
        if func1 == 2:
            print(student_list)
            break


# 修改学生信息(还需要完善，如果名字相同，如何删除指定名字学员)
def rem_student_data():
    while True:
        student_id = int(input("请输入需要修改学员的id: "))
        global student_list
        # 遍历学员信息表, 如果学员信息表中的id,和输入的id相等就进行修改这个学员的信息，否则输出该学员不存在
        for data in student_list:
            if student_id == data["id"]:
                data["id"] = int(input("请输入修改后的id: "))
                data["name"] = (input("请输入修改后的名字: "))
                data["age"] = int(input("请输入修改后的年龄: "))
                data["sex"] = (input("请输入修改后的性别: "))
                data["major"] = (input("请输入修改后的专业: "))
                print(f"id是{data['id']}, 姓名是{data['name']}的学员  ---信息修改成功")
                break
        else:
            print("这个学员的id不存在")
        func1 = int(input("是否继续修改学员信息：(1 、继续修改 2、返回功能界面): "))
        if func1 == 2:
            print(student_list)
            break


# 查找学生信息
def sch_student_data():
    while True:
        student_name = input("请输入要查看的学员名字： ")
        global student_list
        # 遍历学员信息表, 如果学员信息表中的名字,和输入的名字相等就查看这个学员的信息，否则输出该学员不存在
        for data in student_list:
            if student_name == data["name"]:
                print(
                    f"这个学员id是:{data['id']}\n名字是:{data['name']}\n年龄是:{data['age']}\
                    \n性别是:{data['sex']}\n专业是:{data['major']}")
                break
        else:
            print("这个学员不存在")
        func1 = int(input("是否继续查找学员信息：(1 、继续查找 2、返回功能界面): "))
        if func1 == 2:
            break


# 功能界面
def main():
    while True:
        print("=======欢迎进入学生管理系统，请选择你要实现的功能=======")
        print("\t\t 🍁🍁🍁🍁🍁|1、增加学生信息|🍁🍁🍁🍁🍁")
        print("\t\t 🍁🍁🍁🍁🍁|2、删除学生信息|🍁🍁🍁🍁🍁")
        print("\t\t 🍁🍁🍁🍁🍁|3、修改学生信息|🍁🍁🍁🍁🍁")
        print("\t\t 🍁🍁🍁🍁🍁|4、查找学生信息|🍁🍁🍁🍁🍁")
        print("\t\t 🍁🍁🍁🍁🍁|5、退出当前系统|🍁🍁🍁🍁🍁")
        num = int(input("请输入对应的数字选择功能："))
        if num == 1:
            add_student_data()
        elif num == 2:
            del_student_data()
        elif num == 3:
            rem_student_data()
        elif num == 4:
            sch_student_data()
        elif num == 5:
            print("🍂🍂🍂🍂欢迎下次使用🍂🍂🍂🍂")
            break
        else:
            print("🪶🪶🪶请输入正确的数字🪶🪶🪶")


if __name__ == '__main__':
    main()
